StupidBeauty
Read times:1397Posted at:Sun May 22 05:22:26 2011
- no title specified

BioPython文档翻译:MultipleSeqAlignment类,Class MultipleSeqAlignment

表示一个经典的多序列比对(MSA)。

这个东西表示的是一组长度相同(通常使用缺口字符来填充空缺位置)的序列(通常显示成行)。这个数据可 被看成一个字母矩阵,其中有整齐的 (well defined)

一般地,你可以通过使用AlignIO模块载入一个比对文件来创建一个多序列比对

>>> from Bio import AlignIO

>>> align = AlignIO.read("Clustalw/opuntia.aln", "clustal")

>>> print align

SingleLetterAlphabet() alignment with 7 rows and 156 columns

TATACATTAAAGAAGGGGGATGCGGATAAATGGAAAGGCGAAAG...AGA gi|6273285|gb|AF191659.1|AF191

TATACATTAAAGAAGGGGGATGCGGATAAATGGAAAGGCGAAAG...AGA gi|6273284|gb|AF191658.1|AF191

TATACATTAAAGAAGGGGGATGCGGATAAATGGAAAGGCGAAAG...AGA gi|6273287|gb|AF191661.1|AF191

TATACATAAAAGAAGGGGGATGCGGATAAATGGAAAGGCGAAAG...AGA gi|6273286|gb|AF191660.1|AF191

TATACATTAAAGGAGGGGGATGCGGATAAATGGAAAGGCGAAAG...AGA gi|6273290|gb|AF191664.1|AF191

TATACATTAAAGGAGGGGGATGCGGATAAATGGAAAGGCGAAAG...AGA gi|6273289|gb|AF191663.1|AF191

TATACATTAAAGGAGGGGGATGCGGATAAATGGAAAGGCGAAAG...AGA gi|6273291|gb|AF191665.1|AF191

从某些方面来说,你可以将这些对象当成SeqRecord 对象的列表 ,其中每一个 都表示咯比对中的一行。遍历一个比对的话 ,就得到针对每一行的SeqRecord 对象:

>>> len(align)

7

>>> for record in align:

...     print record.id, len(record)

gi|6273285|gb|AF191659.1|AF191 156

gi|6273284|gb|AF191658.1|AF191 156

gi|6273287|gb|AF191661.1|AF191 156

gi|6273286|gb|AF191660.1|AF191 156

gi|6273290|gb|AF191664.1|AF191 156

gi|6273289|gb|AF191663.1|AF191 156

gi|6273291|gb|AF191665.1|AF191 156

你还可以通过下标(index)来以 SeqRecord 对象的方式访问单独的行:

>>> print align[0].id

gi|6273285|gb|AF191659.1|AF191

>>> print align[-1].id

gi|6273291|gb|AF191665.1|AF191

还可以以字符串的方式提取列

>>> print align[:,1]

AAAAAAA

或者,取出前 10列作为一个子比对(sub-alignment):

>>> print align[:,:10]

SingleLetterAlphabet() alignment with 7 rows and 10 columns

TATACATTAA gi|6273285|gb|AF191659.1|AF191

TATACATTAA gi|6273284|gb|AF191658.1|AF191

TATACATTAA gi|6273287|gb|AF191661.1|AF191

TATACATAAA gi|6273286|gb|AF191660.1|AF191

TATACATTAA gi|6273290|gb|AF191664.1|AF191

TATACATTAA gi|6273289|gb|AF191663.1|AF191

TATACATTAA gi|6273291|gb|AF191665.1|AF191

将这种比对切割(slicing)和比对的加法(addition)结合,就允许你删除这个比对的某个部分。比如 ,只取出前 10列和末10列:

>>> print align[:,:10] + align[:,-10:]

SingleLetterAlphabet() alignment with 7 rows and 20 columns

TATACATTAAGTGTACCAGA gi|6273285|gb|AF191659.1|AF191

TATACATTAAGTGTACCAGA gi|6273284|gb|AF191658.1|AF191

TATACATTAAGTGTACCAGA gi|6273287|gb|AF191661.1|AF191

TATACATAAAGTGTACCAGA gi|6273286|gb|AF191660.1|AF191

TATACATTAAGTGTACCAGA gi|6273290|gb|AF191664.1|AF191

TATACATTAAGTATACCAGA gi|6273289|gb|AF191663.1|AF191

TATACATTAAGTGTACCAGA gi|6273291|gb|AF191665.1|AF191

注意-这个对象是用来取代已有的在Bio.Align.Generic 模块中定义的Alignment 对象的,但是并不是完全地后向兼容它

注意-这个对象并尝试对有多个序列读取的下一代序列中使用的那种类型的比对进行建模,它们比比对对象本身短得多 ,并且通常会有一个重复序列 (consensus)或者带有特殊状态的引用序列

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands